草庐IT

phpstorm 和 phpunit

全部标签

php - PHPUnit 中的模拟对象来模拟静态方法调用?

我正在尝试测试一个管理数据库中数据访问的类(您知道,本质上是CRUD)。我们正在使用的DB库恰好有一个API,您首先通过静态调用获取表对象:functiongetFoo($id){$MyTableRepresentation=DB_DataObject::factory("mytable");$MyTableRepresentation->get($id);...dosomestuffreturn$somedata}...你明白了。我们正在尝试测试此方法,但模拟了DataObject的东西,以便(a)我们不需要实际的数据库连接来进行测试,并且(b)我们甚至不需要包含DB_DataObj

PHPUnit 提供程序不使用依赖项

我正在使用PHPUnit3.4.9,但我在使用@depends注释时遇到了一些问题。它的工作方式与示例中的一样,但是当生产者依赖于提供者时会中断。我不知道这是否有效,但我的代码基本上是以下形式:assertTrue(empty($stack));return$stack;}/***@dependstestEmpty*/publicfunctiontestPush(array$stack){array_push($stack,'foo');$this->assertEquals('foo',$stack[count($stack)-1]);$this->assertFalse(empty

php - 如何防止 PhpStorm 在没有提示的情况下在退出时保存文件?

考虑这种情况...您只是一次更改几个文件。代码还没有完成,电话响了……然后你必须关闭PhpStorm,关闭你的电脑并抓紧时间,因为有重要的事情发生了。然后一周后你会回来,启动你的phpstorm并注意到你写的所有内容都已保存但星号消失了。因此,您不知道在您离开之前更改了打开的文件中的哪些文件。我在这里读了一些关于令人困惑的保存功能的帖子,我认为目前的处理方式确实不是很好。phpstorm应该询问我是否要保存这些更改,或者至少在启动后在选项卡中保留星号,以便开发人员知道更改了哪些文件。 最佳答案 检查一下:http://devnet.

PHPUNIT xdebug codecoverage 在控制台 (mac) MAMP 1.9 PRO 中不起作用

您好,我的xdebug连接到PHPUnit有问题。运行时:phpunit--coverage-html./reportunit我得到:PHPUnit3.4.15bySebastianBergmann.TheXdebugextensionisnotloaded.当我运行php-v时PHP5.2.13(cli)(built:Mar5201016:23:44)Copyright(c)1997-2010ThePHPGroupZendEnginev2.2.0,Copyright(c)1998-2010ZendTechnologieswitheAcceleratorv0.9.6,Copyright

phpunit - 返回两个对象到下一个测试用例

在某些地方,我的phpunit方法依赖于两个类,因此我决定编写一个专用方法来创建这两个类(彼此相关)的实例,并将它们传递给所有phpunit方法。我想做类似下面的事情。publicfunctiontestGetInstance(){$obj1=newClass1();$obj2=newClass2();return$obj1,$obj2;//caniuselist?}/***@dependstestGetInstance()*/publicfunctiontestBothFeatures(Class1$obj1,Class2$obj2)//howtopass2instances?{//

php - 在 TestSuite 期间停止 Phpunit 执行

我使用一个类来执行带有PhpUnit的测试套件,例如:$suite=newPHPUnit_Framework_TestSuite('PHPUnitFramework');$suite->addTestSuite('ClassOne');$suite->addTestSuite('ClassTwo');return$suite;开始单元测试:#phpunit--stop-on-failureTestSuite.php如果“ClassOne”出现错误或异常,则测试继续“ClassTwo”。如果第一个测试失败,我如何停止所有测试套件? 最佳答案

php - 如何在 phpunit setUpBeforeClass 方法中创建模拟对象?

我想在我的所有测试中都有一个模拟对象,所以我尝试在setUpBeforeClass()方法中创建它,但是这个方法是静态的,所以必须像这样静态调用getMockBuilder:publicstaticfunctionsetUpBeforeClass(){self::mocked_object=self::getMockBuilder('MockedClass')->disableOriginalConstructor()->getMock();}问题是getMockBuilder不能被静态调用:Argument1passedtoPHPUnit_Framework_MockObject_M

php - 在 PHPUnit (CIUnit) 中使用 YAML 文件作为数据提供者

我正在使用PHPCodeIgniterFramework编写应用程序。我正在尝试使用CI_Unit扩展PHPUnit来测试应用程序。为了测试模型,我尝试加载PHPUnit文档中定义的YAML数据提供程序,我收到错误。如果我捏造数据提供者对象,我会得到另一个错误。如果我为它提供一个普通的PHP数组,它会按预期运行。我做错了什么?这样做的正确方法是什么?以下是我的结果:如果我返回下面Yaml文件的对象PHPUnit_Extensions_Database_DataSet_YamlDataSet,我得到:Dataset"Clients"isinvalid.如果我围绕PHPUnit_Exten

PHPStorm 和模块引用

我的PHP项目中有以下文件:index.phpprivate/module1.phpprivate/module2.phpindex.php以这种方式引用module1.php:require_once('private/module1.php');反过来,module1.php需要module2.php,因此它具有以下行:require_once('private/module2.php');我需要告知从root开始的相对路径才能正常工作。我猜那是因为require_once命令需要来自current文档的路径,恰好是index.php。问题是PHPStorm无法管理这个引用。例如,

php - 在 phpstorm 中使用正则表达式使用替换工具删除 php 注释

如何使用正则表达式从php文件中删除多行注释?我试过"/\*(.*\n)*\*/"但它失败了。它所做的只是以“/*”开头并在最后一次出现“*/”时停止。 最佳答案 感谢tenub评论。所有php注释的最终解决方案如下所示:/\*[\s\S]*?\*/|(?在哪里1)/\*[\s\S]*?\*/对于/*comments*/2)(?对于单行//comment转义以http://开头的网址(最好不要显示以"或'开头的那些,但我现在很好)哦,天哪,如果您发布的是更正的答案而不是评论。我会接受的。因为你帮助了ty)